home *** CD-ROM | disk | FTP | other *** search
/ Kompuutteri K-CD 2002 #1 / K-CD_2002-01.iso / Delphi / INSTALL / program files / Borland / Delphi6 / Doc / ExtCtrls.int < prev    next >
Encoding:
Text File  |  2001-05-22  |  24.9 KB  |  823 lines

  1.  
  2. {*******************************************************}
  3. {                                                       }
  4. {       Borland Delphi Visual Component Library         }
  5. {                                                       }
  6. {  Copyright (c) 1995-2001 Borland Software Corporation }
  7. {                                                       }
  8. {*******************************************************}
  9.  
  10. unit ExtCtrls;
  11.  
  12. {$S-,W-,R-,H+,X+}
  13. {$C PRELOAD}
  14.  
  15. interface
  16.  
  17. uses Messages, Windows, SysUtils, Classes, Controls, Forms, Menus, Graphics,
  18.   StdCtrls;
  19.  
  20. type
  21.  
  22.   TShapeType = (stRectangle, stSquare, stRoundRect, stRoundSquare,
  23.     stEllipse, stCircle);
  24.  
  25.   TShape = class(TGraphicControl)
  26.   protected
  27.     procedure Paint; override;
  28.   public
  29.     constructor Create(AOwner: TComponent); override;
  30.     destructor Destroy; override;
  31.   published
  32.     procedure StyleChanged(Sender: TObject);
  33.     property Align;
  34.     property Anchors;
  35.     property Brush: TBrush;
  36.     property DragCursor;
  37.     property DragKind;
  38.     property DragMode;
  39.     property Enabled;
  40.     property Constraints;
  41.     property ParentShowHint;
  42.     property Pen: TPen;
  43.     property Shape: TShapeType default stRectangle;
  44.     property ShowHint;
  45.     property Visible;
  46.     property OnContextPopup;
  47.     property OnDragDrop;
  48.     property OnDragOver;
  49.     property OnEndDock;
  50.     property OnEndDrag;
  51.     property OnMouseDown;
  52.     property OnMouseMove;
  53.     property OnMouseUp;
  54.     property OnStartDock;
  55.     property OnStartDrag;
  56.   end;
  57.  
  58.   TPaintBox = class(TGraphicControl)
  59.   protected
  60.     procedure Paint; override;
  61.   public
  62.     constructor Create(AOwner: TComponent); override;
  63.     property Canvas;
  64.   published
  65.     property Align;
  66.     property Anchors;
  67.     property Color;
  68.     property Constraints;
  69.     property DragCursor;
  70.     property DragKind;
  71.     property DragMode;
  72.     property Enabled;
  73.     property Font;
  74.     property ParentColor;
  75.     property ParentFont;
  76.     property ParentShowHint;
  77.     property PopupMenu;
  78.     property ShowHint;
  79.     property Visible;
  80.     property OnClick;
  81.     property OnContextPopup;
  82.     property OnDblClick;
  83.     property OnDragDrop;
  84.     property OnDragOver;
  85.     property OnEndDock;
  86.     property OnEndDrag;
  87.     property OnMouseDown;
  88.     property OnMouseMove;
  89.     property OnMouseUp;
  90.     property OnPaint: TNotifyEvent;
  91.     property OnStartDock;
  92.     property OnStartDrag;
  93.   end;
  94.  
  95.   TImage = class(TGraphicControl)
  96.   protected
  97.     function CanAutoSize(var NewWidth, NewHeight: Integer): Boolean; override;
  98.     function DestRect: TRect;
  99.     function DoPaletteChange: Boolean;
  100.     function GetPalette: HPALETTE; override;
  101.     procedure Paint; override;
  102.     procedure Progress(Sender: TObject; Stage: TProgressStage;
  103.       PercentDone: Byte; RedrawNow: Boolean; const R: TRect; const Msg: string); dynamic;
  104.   public
  105.     constructor Create(AOwner: TComponent); override;
  106.     destructor Destroy; override;
  107.     property Canvas: TCanvas;
  108.   published
  109.     property Align;
  110.     property Anchors;
  111.     property AutoSize;
  112.     property Center: Boolean default False;
  113.     property Constraints;
  114.     property DragCursor;
  115.     property DragKind;
  116.     property DragMode;
  117.     property Enabled;
  118.     property IncrementalDisplay: Boolean default False;
  119.     property ParentShowHint;
  120.     property Picture: TPicture;
  121.     property PopupMenu;
  122.     property Proportional: Boolean default false;
  123.     property ShowHint;
  124.     property Stretch: Boolean default False;
  125.     property Transparent: Boolean default False;
  126.     property Visible;
  127.     property OnClick;
  128.     property OnContextPopup;
  129.     property OnDblClick;
  130.     property OnDragDrop;
  131.     property OnDragOver;
  132.     property OnEndDock;
  133.     property OnEndDrag;
  134.     property OnMouseDown;
  135.     property OnMouseMove;
  136.     property OnMouseUp;
  137.     property OnProgress: TProgressEvent;
  138.     property OnStartDock;
  139.     property OnStartDrag;
  140.   end;
  141.  
  142.   TBevelStyle = (bsLowered, bsRaised);
  143.   TBevelShape = (bsBox, bsFrame, bsTopLine, bsBottomLine, bsLeftLine,
  144.     bsRightLine, bsSpacer);
  145.  
  146.   TBevel = class(TGraphicControl)
  147.   protected
  148.     procedure Paint; override;
  149.   public
  150.     constructor Create(AOwner: TComponent); override;
  151.   published
  152.     property Align;
  153.     property Anchors;
  154.     property Constraints;
  155.     property ParentShowHint;
  156.     property Shape: TBevelShape default bsBox;
  157.     property ShowHint;
  158.     property Style: TBevelStyle default bsLowered;
  159.     property Visible;
  160.   end;
  161.  
  162.   TTimer = class(TComponent)
  163.   protected
  164.     procedure Timer; dynamic;
  165.   public
  166.     constructor Create(AOwner: TComponent); override;
  167.     destructor Destroy; override;
  168.   published
  169.     property Enabled: Boolean default True;
  170.     property Interval: Cardinal default 1000;
  171.     property OnTimer: TNotifyEvent;
  172.   end;
  173.  
  174.   TPanelBevel = TBevelCut;
  175.  
  176.   TCustomPanel = class(TCustomControl)
  177.   protected
  178.     procedure CreateParams(var Params: TCreateParams); override;
  179.     procedure AdjustClientRect(var Rect: TRect); override;
  180.     function CanAutoSize(var NewWidth, NewHeight: Integer): Boolean; override;
  181.     procedure Paint; override;
  182.     property Alignment: TAlignment default taCenter;
  183.     property BevelInner: TPanelBevel default bvNone;
  184.     property BevelOuter: TPanelBevel default bvRaised;
  185.     property BevelWidth: TBevelWidth default 1;
  186.     property BorderWidth: TBorderWidth default 0;
  187.     property BorderStyle: TBorderStyle default bsNone;
  188.     property Color default clBtnFace;
  189.     property FullRepaint: Boolean default True;
  190.     property Locked: Boolean default False;
  191.     property ParentColor default False;
  192.   public
  193.     constructor Create(AOwner: TComponent); override;
  194.     function GetControlsAlignment: TAlignment; override;
  195.   end;
  196.  
  197.   TPanel = class(TCustomPanel)
  198.   public
  199.     property DockManager;
  200.   published
  201.     property Align;
  202.     property Alignment;
  203.     property Anchors;
  204.     property AutoSize;
  205.     property BevelInner;
  206.     property BevelOuter;
  207.     property BevelWidth;
  208.     property BiDiMode;
  209.     property BorderWidth;
  210.     property BorderStyle;
  211.     property Caption;
  212.     property Color;
  213.     property Constraints;
  214.     property Ctl3D;
  215.     property UseDockManager default True;
  216.     property DockSite;
  217.     property DragCursor;
  218.     property DragKind;
  219.     property DragMode;
  220.     property Enabled;
  221.     property FullRepaint;
  222.     property Font;
  223.     property Locked;
  224.     property ParentBiDiMode;
  225.     property ParentColor;
  226.     property ParentCtl3D;
  227.     property ParentFont;
  228.     property ParentShowHint;
  229.     property PopupMenu;
  230.     property ShowHint;
  231.     property TabOrder;
  232.     property TabStop;
  233.     property Visible;
  234.     property OnCanResize;
  235.     property OnClick;
  236.     property OnConstrainedResize;
  237.     property OnContextPopup;
  238.     property OnDockDrop;
  239.     property OnDockOver;
  240.     property OnDblClick;
  241.     property OnDragDrop;
  242.     property OnDragOver;
  243.     property OnEndDock;
  244.     property OnEndDrag;
  245.     property OnEnter;
  246.     property OnExit;
  247.     property OnGetSiteInfo;
  248.     property OnMouseDown;
  249.     property OnMouseMove;
  250.     property OnMouseUp;
  251.     property OnResize;
  252.     property OnStartDock;
  253.     property OnStartDrag;
  254.     property OnUnDock;
  255.   end;
  256.  
  257.   TPage = class(TCustomControl)
  258.   protected
  259.     procedure ReadState(Reader: TReader); override;
  260.     procedure Paint; override;
  261.   public
  262.     constructor Create(AOwner: TComponent); override;
  263.   published
  264.     property Caption;
  265.     property Height stored False;
  266.     property TabOrder stored False;
  267.     property Visible stored False;
  268.     property Width stored False;
  269.   end;
  270.  
  271.   TNotebook = class(TCustomControl)
  272.   protected
  273.     procedure CreateParams(var Params: TCreateParams); override;
  274.     function GetChildOwner: TComponent; override;
  275.     procedure GetChildren(Proc: TGetChildProc; Root: TComponent); override;
  276.     procedure ReadState(Reader: TReader); override;
  277.     procedure ShowControl(AControl: TControl); override;
  278.   public
  279.     constructor Create(AOwner: TComponent); override;
  280.     destructor Destroy; override;
  281.   published
  282.     property ActivePage: string;
  283.     property Align;
  284.     property Anchors;
  285.     property Color;
  286.     property Ctl3D;
  287.     property DragCursor;
  288.     property DragKind;
  289.     property DragMode;
  290.     property Font;
  291.     property Enabled;
  292.     property Constraints;
  293.     property PageIndex: Integer default 0;
  294.     property Pages: TStrings;
  295.     property ParentColor;
  296.     property ParentCtl3D;
  297.     property ParentFont;
  298.     property ParentShowHint;
  299.     property PopupMenu;
  300.     property ShowHint;
  301.     property TabOrder;
  302.     property TabStop;
  303.     property Visible;
  304.     property OnClick;
  305.     property OnContextPopup;
  306.     property OnDblClick;
  307.     property OnDragDrop;
  308.     property OnDragOver;
  309.     property OnEndDock;
  310.     property OnEndDrag;
  311.     property OnEnter;
  312.     property OnExit;
  313.     property OnMouseDown;
  314.     property OnMouseMove;
  315.     property OnMouseUp;
  316.     property OnPageChanged: TNotifyEvent;
  317.     property OnStartDock;
  318.     property OnStartDrag;
  319.   end;
  320.  
  321. { THeader
  322.   Purpose  - Creates sectioned visual header that allows each section to be
  323.              resized with the mouse.
  324.   Features - This is a design-interactive control.  In design mode, the
  325.              sections are named using the string-list editor.  Each section
  326.              can now be manually resized using the right mouse button the grab
  327.              the divider and drag to the new size.  Changing the section list
  328.              at design (or even run-time), will attempt to maintain the
  329.              section widths for sections that have not been changed.
  330.   Properties:
  331.     Align - Standard property.
  332.     AllowResize - If True, the control allows run-time mouse resizing of the
  333.                   sections.
  334.     BorderStyle - Turns the border on and off.
  335.     Font - Standard property.
  336.     Sections - A special string-list that contains the section text.
  337.     ParentFont - Standard property.
  338.     OnSizing - Event called for each mouse move during a section resize
  339.                operation.
  340.     OnSized - Event called once the size operation is complete.
  341.  
  342.     SectionWidth - Array property allowing run-time getting and setting of
  343.                    each section's width. }
  344.  
  345.   TSectionEvent = procedure(Sender: TObject;
  346.     ASection, AWidth: Integer) of object;
  347.  
  348.   THeader = class(TCustomControl)
  349.   protected
  350.     procedure Paint; override;
  351.     procedure CreateParams(var Params: TCreateParams); override;
  352.     procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
  353.       X, Y: Integer); override;
  354.     procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
  355.     procedure MouseUp(Button: TMouseButton; Shift: TShiftState;
  356.       X, Y: Integer); override;
  357.     procedure Sizing(ASection, AWidth: Integer); dynamic;
  358.     procedure Sized(ASection, AWidth: Integer); dynamic;
  359.   public
  360.     constructor Create(AOwner: TComponent); override;
  361.     destructor Destroy; override;
  362.     property SectionWidth[X: Integer]: Integer;
  363.   published
  364.     property Align;
  365.     property AllowResize: Boolean default True;
  366.     property Anchors;
  367.     property BorderStyle: TBorderStyle default bsSingle;
  368.     property Constraints;
  369.     property Enabled;
  370.     property Font;
  371.     property ParentFont;
  372.     property ParentShowHint;
  373.     property PopupMenu;
  374.     property Sections: TStrings;
  375.     property ShowHint;
  376.     property TabOrder;
  377.     property TabStop;
  378.     property Visible;
  379.     property OnContextPopup;
  380.     property OnSizing: TSectionEvent;
  381.     property OnSized: TSectionEvent;
  382.   end;
  383.  
  384.   TCustomRadioGroup = class(TCustomGroupBox)
  385.   protected
  386.     procedure Loaded; override;
  387.     procedure ReadState(Reader: TReader); override;
  388.     function CanModify: Boolean; virtual;
  389.     procedure GetChildren(Proc: TGetChildProc; Root: TComponent); override;
  390.     property Columns: Integer default 1;
  391.     property ItemIndex: Integer default -1;
  392.     property Items: TStrings;
  393.   public
  394.     constructor Create(AOwner: TComponent); override;
  395.     destructor Destroy; override;
  396.     procedure FlipChildren(AllLevels: Boolean); override;
  397.   end;
  398.  
  399.   TRadioGroup = class(TCustomRadioGroup)
  400.   published
  401.     property Align;
  402.     property Anchors;
  403.     property BiDiMode;
  404.     property Caption;
  405.     property Color;
  406.     property Columns;
  407.     property Ctl3D;
  408.     property DragCursor;
  409.     property DragKind;
  410.     property DragMode;
  411.     property Enabled;
  412.     property Font;
  413.     property ItemIndex;
  414.     property Items;
  415.     property Constraints;
  416.     property ParentBiDiMode;
  417.     property ParentColor;
  418.     property ParentCtl3D;
  419.     property ParentFont;
  420.     property ParentShowHint;
  421.     property PopupMenu;
  422.     property ShowHint;
  423.     property TabOrder;
  424.     property TabStop;
  425.     property Visible;
  426.     property OnClick;
  427.     property OnContextPopup;
  428.     property OnDragDrop;
  429.     property OnDragOver;
  430.     property OnEndDock;
  431.     property OnEndDrag;
  432.     property OnEnter;
  433.     property OnExit;
  434.     property OnStartDock;
  435.     property OnStartDrag;
  436.   end;
  437.  
  438.   NaturalNumber = 1..High(Integer);
  439.  
  440.   TCanResizeEvent = procedure(Sender: TObject; var NewSize: Integer;
  441.     var Accept: Boolean) of object;
  442.  
  443.   TResizeStyle = (rsNone, rsLine, rsUpdate, rsPattern);
  444.  
  445.   TSplitter = class(TGraphicControl)
  446.   protected
  447.     function CanResize(var NewSize: Integer): Boolean; reintroduce; virtual;
  448.     function DoCanResize(var NewSize: Integer): Boolean; virtual;
  449.     procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
  450.       X, Y: Integer); override;
  451.     procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
  452.     procedure MouseUp(Button: TMouseButton; Shift: TShiftState;
  453.       X, Y: Integer); override;
  454.     procedure Paint; override;
  455.     procedure RequestAlign; override;
  456.     procedure StopSizing; dynamic;
  457.   public
  458.     constructor Create(AOwner: TComponent); override;
  459.     destructor Destroy; override;
  460.     property Canvas;
  461.   published
  462.     property Align default alLeft;
  463.     property AutoSnap: Boolean default True;
  464.     property Beveled: Boolean default False;
  465.     property Color;
  466.     property Constraints;
  467.     property MinSize: NaturalNumber default 30;
  468.     property ParentColor;
  469.     property ResizeStyle: TResizeStyle default rsPattern;
  470.     property Visible;
  471.     property OnCanResize: TCanResizeEvent;
  472.     property OnMoved: TNotifyEvent;
  473.     property OnPaint: TNotifyEvent;
  474.   end;
  475.  
  476. { TControlBar }
  477.  
  478.   TBandPaintOption = (bpoGrabber, bpoFrame);
  479.   TBandPaintOptions = set of TBandPaintOption;
  480.  
  481.   TBandDragEvent = procedure (Sender: TObject; Control: TControl;
  482.     var Drag: Boolean) of object;
  483.   TBandInfoEvent = procedure (Sender: TObject; Control: TControl;
  484.     var Insets: TRect; var PreferredSize, RowCount: Integer) of object;
  485.   TBandMoveEvent = procedure (Sender: TObject; Control: TControl;
  486.     var ARect: TRect) of object;
  487.   TBandPaintEvent = procedure (Sender: TObject; Control: TControl;
  488.     Canvas: TCanvas; var ARect: TRect; var Options: TBandPaintOptions) of object;
  489.  
  490.   TRowSize = 1..MaxInt;
  491.  
  492.   TCustomControlBar = class(TCustomControl)
  493.   protected
  494.     procedure AlignControls(AControl: TControl; var ARect: TRect); override;
  495.     function CanAutoSize(var NewWidth, NewHeight: Integer): Boolean; override;
  496.     procedure CreateParams(var Params: TCreateParams); override;
  497.     procedure DoBandMove(Control: TControl; var ARect: TRect); virtual;
  498.     procedure DoBandPaint(Control: TControl; Canvas: TCanvas; var ARect: TRect;
  499.       var Options: TBandPaintOptions); virtual;
  500.     procedure DockOver(Source: TDragDockObject; X, Y: Integer; State: TDragState;
  501.       var Accept: Boolean); override;
  502.     function DoPaletteChange: Boolean;
  503.     function DragControl(AControl: TControl; X, Y: Integer;
  504.       KeepCapture: Boolean = False): Boolean; virtual;
  505.     procedure GetControlInfo(AControl: TControl; var Insets: TRect;
  506.       var PreferredSize, RowCount: Integer); virtual;
  507.     function GetPalette: HPALETTE; override;
  508.     procedure GetSiteInfo(Client: TControl; var InfluenceRect: TRect;
  509.       MousePos: TPoint; var CanDock: Boolean); override;
  510.     function HitTest(X, Y: Integer): TControl;
  511.     procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
  512.       X, Y: Integer); override;
  513.     procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
  514.     procedure MouseUp(Button: TMouseButton; Shift: TShiftState;
  515.       X, Y: Integer); override;
  516.     procedure Paint; override;
  517.     procedure PaintControlFrame(Canvas: TCanvas; AControl: TControl;
  518.       var ARect: TRect); virtual;
  519.   public
  520.     constructor Create(AOwner: TComponent); override;
  521.     destructor Destroy; override;
  522.     procedure FlipChildren(AllLevels: Boolean); override;
  523.     procedure StickControls; virtual;
  524.     property Picture: TPicture;
  525.   protected
  526.     property AutoDock: Boolean default True;
  527.     property AutoDrag: Boolean default True;
  528.     property AutoSize;
  529.     property BevelKind default bkTile;
  530.     property DockSite default True;
  531.     property RowSize: TRowSize default 26;
  532.     property RowSnap: Boolean default True;
  533.     property OnBandDrag: TBandDragEvent;
  534.     property OnBandInfo: TBandInfoEvent;
  535.     property OnBandMove: TBandMoveEvent;
  536.     property OnBandPaint: TBandPaintEvent;
  537.     property OnPaint: TNotifyEvent;
  538.   end;
  539.  
  540.   TControlBar = class(TCustomControlBar)
  541.   public
  542.     property Canvas;
  543.   published
  544.     property Align;
  545.     property Anchors;
  546.     property AutoDock;
  547.     property AutoDrag;
  548.     property AutoSize;
  549.     property BevelEdges;
  550.     property BevelInner;
  551.     property BevelOuter;
  552.     property BevelKind;
  553.     property BevelWidth;
  554.     property BorderWidth;
  555.     property Color;
  556.     property Constraints;
  557.     property DockSite;
  558.     property DragCursor;
  559.     property DragKind;
  560.     property DragMode;
  561.     property Enabled;
  562.     property ParentColor;
  563.     property ParentCtl3D;
  564.     property ParentFont;
  565.     property ParentShowHint;
  566.     property Picture;
  567.     property PopupMenu;
  568.     property RowSize;
  569.     property RowSnap;
  570.     property ShowHint;
  571.     property TabOrder;
  572.     property TabStop;
  573.     property Visible;
  574.     property OnBandDrag;
  575.     property OnBandInfo;
  576.     property OnBandMove;
  577.     property OnBandPaint;
  578.     property OnCanResize;
  579.     property OnClick;
  580.     property OnConstrainedResize;
  581.     property OnContextPopup;
  582.     property OnDockDrop;
  583.     property OnDockOver;
  584.     property OnDblClick;
  585.     property OnDragDrop;
  586.     property OnDragOver;
  587.     property OnEndDock;
  588.     property OnEndDrag;
  589.     property OnEnter;
  590.     property OnExit;
  591.     property OnGetSiteInfo;
  592.     property OnMouseDown;
  593.     property OnMouseMove;
  594.     property OnMouseUp;
  595.     property OnPaint;
  596.     property OnResize;
  597.     property OnStartDock;
  598.     property OnStartDrag;
  599.     property OnUnDock;
  600.   end;
  601.  
  602.   { TBoundLabel }
  603.  
  604.   TBoundLabel = class(TCustomLabel)
  605.   protected
  606.     procedure AdjustBounds; override;
  607.   public
  608.     constructor Create(AOwner: TComponent); override;
  609.   published
  610.     property BiDiMode;
  611.     property Caption;
  612.     property Color;
  613.     property DragCursor;
  614.     property DragKind;
  615.     property DragMode;
  616.     property Font;
  617.     property Height: Integer;
  618.     property Left: Integer;
  619.     property ParentBiDiMode;
  620.     property ParentColor;
  621.     property ParentFont;
  622.     property ParentShowHint;
  623.     property PopupMenu;
  624.     property ShowAccelChar;
  625.     property ShowHint;
  626.     property Top: Integer;
  627.     property Transparent;
  628.     property Layout;
  629.     property WordWrap;
  630.     property Width: Integer;
  631.     property OnClick;
  632.     property OnContextPopup;
  633.     property OnDblClick;
  634.     property OnDragDrop;
  635.     property OnDragOver;
  636.     property OnEndDock;
  637.     property OnEndDrag;
  638.     property OnMouseDown;
  639.     property OnMouseMove;
  640.     property OnMouseUp;
  641.     property OnStartDock;
  642.     property OnStartDrag;
  643.   end;
  644.  
  645.   TLabelPosition = (lpAbove, lpBelow, lpLeft, lpRight);
  646.  
  647.   { TCustomLabeledEdit }
  648.  
  649.   TCustomLabeledEdit = class(TCustomEdit)
  650.   protected
  651.     procedure SetParent(AParent: TWinControl); override;
  652.     procedure Notification(AComponent: TComponent; Operation: TOperation); override;
  653.     procedure SetName(const Value: TComponentName); override;
  654.     procedure CMVisiblechanged(var Message: TMessage);
  655.       message CM_VISIBLECHANGED;
  656.     procedure CMEnabledchanged(var Message: TMessage);
  657.       message CM_ENABLEDCHANGED;
  658.     procedure CMBidimodechanged(var Message: TMessage);
  659.       message CM_BIDIMODECHANGED;
  660.   public
  661.     { Public declarations }
  662.     constructor Create(AOwner: TComponent); override;
  663.     procedure SetBounds(ALeft: Integer; ATop: Integer; AWidth: Integer; AHeight: Integer); override;
  664.     procedure SetupInternalLabel;
  665.     property EditLabel: TBoundLabel;
  666.     property LabelPosition: TLabelPosition;
  667.     property LabelSpacing: Integer;
  668.   end;
  669.  
  670.   { TLabeledEdit }
  671.  
  672.   TLabeledEdit = class(TCustomLabeledEdit)
  673.   published
  674.     property Anchors;
  675.     property AutoSelect;
  676.     property AutoSize;
  677.     property BevelEdges;
  678.     property BevelInner;
  679.     property BevelKind;
  680.     property BevelOuter;
  681.     property BiDiMode;
  682.     property BorderStyle;
  683.     property CharCase;
  684.     property Color;
  685.     property Constraints;
  686.     property Ctl3D;
  687.     property DragCursor;
  688.     property DragKind;
  689.     property DragMode;
  690.     property EditLabel;
  691.     property Enabled;
  692.     property Font;
  693.     property HideSelection;
  694.     property ImeMode;
  695.     property ImeName;
  696.     property LabelPosition;
  697.     property LabelSpacing;
  698.     property MaxLength;
  699.     property OEMConvert;
  700.     property ParentBiDiMode;
  701.     property ParentColor;
  702.     property ParentCtl3D;
  703.     property ParentFont;
  704.     property ParentShowHint;
  705.     property PasswordChar;
  706.     property PopupMenu;
  707.     property ReadOnly;
  708.     property ShowHint;
  709.     property TabOrder;
  710.     property TabStop;
  711.     property Text;
  712.     property Visible;
  713.     property OnChange;
  714.     property OnClick;
  715.     property OnContextPopup;
  716.     property OnDblClick;
  717.     property OnDragDrop;
  718.     property OnDragOver;
  719.     property OnEndDock;
  720.     property OnEndDrag;
  721.     property OnEnter;
  722.     property OnExit;
  723.     property OnKeyDown;
  724.     property OnKeyPress;
  725.     property OnKeyUp;
  726.     property OnMouseDown;
  727.     property OnMouseMove;
  728.     property OnMouseUp;
  729.     property OnStartDock;
  730.     property OnStartDrag;
  731.   end;
  732.  
  733. const
  734.   NoColorSelected = TColor($FF000000);
  735.  
  736. type
  737.   TColorBoxStyles = (cbStandardColors, // first sixteen RGBI colors
  738.                      cbExtendedColors, // four additional reserved colors
  739.                      cbSystemColors,   // system managed/defined colors
  740.                      cbIncludeNone,    // include clNone color, must be used with cbSystemColors
  741.                      cbIncludeDefault, // include clDefault color, must be used with cbSystemColors
  742.                      cbCustomColor,    // first color is customizable
  743.                      cbPrettyNames);   // instead of 'clColorNames' you get 'Color Names'
  744.   TColorBoxStyle = set of TColorBoxStyles;
  745.   TCustomColorBox = class(TCustomComboBox)
  746.   protected
  747.     procedure CloseUp; override;
  748.     procedure CreateWnd; override;
  749.     procedure DrawItem(Index: Integer; Rect: TRect; State: TOwnerDrawState); override;
  750.     procedure KeyDown(var Key: Word; Shift: TShiftState); override;
  751.     procedure KeyPress(var Key: Char); override;
  752.     function PickCustomColor: Boolean; virtual;
  753.     procedure PopulateList;
  754.     procedure Select; override;
  755.     procedure SetStyle(AStyle: TColorBoxStyle); reintroduce;
  756.   public
  757.     constructor Create(AOwner: TComponent); override;
  758.     property Style: TColorBoxStyle default [cbStandardColors, cbExtendedColors, cbSystemColors];
  759.     property Colors[Index: Integer]: TColor;
  760.     property ColorNames[Index: Integer]: string;
  761.     property Selected: TColor default clBlack;
  762.     property DefaultColorColor: TColor default clBlack;
  763.     property NoneColorColor: TColor default clBlack;
  764.   end;
  765.  
  766.   TColorBox = class(TCustomColorBox)
  767.   published
  768.     property AutoComplete;
  769.     property AutoDropDown;
  770.     property DefaultColorColor;
  771.     property NoneColorColor;
  772.     property Selected;
  773.     property Style;
  774.  
  775.     property Anchors;
  776.     property BevelEdges;
  777.     property BevelInner;
  778.     property BevelKind;
  779.     property BevelOuter;
  780.     property BiDiMode;
  781.     property Color;
  782.     property Constraints;
  783.     property Ctl3D;
  784.     property DropDownCount;
  785.     property Enabled;
  786.     property Font;
  787.     property ItemHeight;
  788.     property ParentBiDiMode;
  789.     property ParentColor;
  790.     property ParentCtl3D;
  791.     property ParentFont;
  792.     property ParentShowHint;
  793.     property PopupMenu;
  794.     property ShowHint;
  795.     property TabOrder;
  796.     property TabStop;
  797.     property Visible;
  798.     property OnChange;
  799.     property OnCloseUp;
  800.     property OnClick;
  801.     property OnContextPopup;
  802.     property OnDblClick;
  803.     property OnDragDrop;
  804.     property OnDragOver;
  805.     property OnDropDown;
  806.     property OnEndDock;
  807.     property OnEndDrag;
  808.     property OnEnter;
  809.     property OnExit;
  810.     property OnKeyDown;
  811.     property OnKeyPress;
  812.     property OnKeyUp;
  813.     property OnSelect;
  814.     property OnStartDock;
  815.     property OnStartDrag;
  816.   end;
  817.  
  818. procedure Frame3D(Canvas: TCanvas; var Rect: TRect;
  819.   TopColor, BottomColor: TColor; Width: Integer);
  820. procedure NotebookHandlesNeeded(Notebook: TNotebook);
  821.  
  822. implementation
  823.